var data = [];

for (var i = 0; i < 3; i++) {
  data[i] = (function (i) {
        return function(){
            console.log(i);
        }
  })(i);
}

data[0]();
data[1]();
data[2]();

// 当执行 data[0] 函数的时候，data[0] 函数的作用域链发生了改变：
// data[0]Context = {
//   Scope: [AO, 匿名函数Context.AO globalContext.VO]
// }